import request from '@/utils/request'

/**
 * 查询考勤数据列表
 *
 * @param {Object} params
 * @param {String} params.page 页码
 * @param {String} params.size 每页条数
 * @param {String} params.deptID 部门id
 *
 * @returns {Promise}
 */
export function getAttendanceListAPI(params) {
  return request.get('/attendances', {
    params
  })
}

/**
 * 根据部门id查询考勤设置
 *
 * @param {String} departmentId 部门id
 *
 * @returns {Promise}
 */
export function getAttendanceSettingAPI(departmentId) {
  return request.get(`/cfg/atte/item`, {
    params: {
      departmentId
    }
  })
}

/**
 * 根据部门保存考勤设置
 *
 * @param {Object} params 考勤设置数据
 * @param {String} [params.id] 配置ID
 * @param {String} params.companyId 公司id
 * @param {String} params.departmentId 部门id
 * @param {String} params.morningStartTime 上午上班时间
 * @param {String} params.morningEndTime 上午下班时间
 * @param {String} params.afternoonStartTime 下午上班时间
 * @param {String} params.afternoonEndTime 下午下班时间
 *
 * @returns {Promise}
 */
export function updateAttendanceSettingAPI(params) {
  return request.put('/cfg/atte', params)
}

/**
 * 根据部门查询请假规则设置
 *
 * @param {String} departmentId 部门id
 *
 * @returns {Promise}
 */
export function getLeaveSettingAPI(departmentId) {
  return request.get(`/cfg/leave/list`, {
    params: {
      departmentId
    }
  })
}

/**
 * 保存或者更新请假规则
 *
 * @param {Array} list 请假规则数据列表
 *
 * @returns {Promise}
 */
export function updateLeaveSettingAPI(list) {
  return request.post('/cfg/leave', list)
}

/**
 * 根据部门id查询考勤扣款规则
 *
 * @param {String} departmentId 部门id
 *
 * @returns {Promise}
 */
export function getDeductionSettingAPI(departmentId) {
  return request.get(`/cfg/ded/list`, {
    params: {
      departmentId
    }
  })
}

/**
 * 保存考勤扣款规则
 *
 * @param {Array} list 考勤扣款规则数据列表
 *
 * @returns {Promise}
 */
export function updateDeductionSettingAPI(list) {
  return request.post('/cfg/deduction', list)
}

/**
 * 根据部门查询考勤加班规则
 *
 * @param {string} departmentId 部门id
 *
 * @returns {Promise}
 */
export function getExtraDutySettingAPI(departmentId) {
  return request.get(`/cfg/extDuty/item`, {
    params: {
      departmentId
    }
  })
}

/**
 * 根据部门保存考勤加班规则
 *
 * @param {Object} params 考勤加班规则数据
 *
 * @returns {Promise}
 */
export function updateExtraDutySettingAPI(obj) {
  return request.put('/cfg/extDuty', obj)
}

/**
 * 编辑用户的考勤记录
 *
 * @param {String} id 被编辑的考勤记录的id
 * @param {Object} params 考勤记录数据
 *
 * @returns {Promise}
 */
export function updateAttendanceStatusAPI(id, obj) {
  return request.put(`/attendances/${id}`, obj)
}
